import java.util.HashSet;

/*
剑指 Offer 61. 扑克牌中的顺子
解题思路：一次遍历数组，用hashset保存数字，有相同的提前false，0除外。并且找到最大和最小值，最后返回最大值和最小值的差值是否小于5。
 */
public class Offer61 {

  public static void main(String[] args) {
    System.out.println(new Offer61().isStraight(new int[]{0, 0, 3, 4, 5}));
  }

  public boolean isStraight(int[] nums) {
    int min = 14;
    int max = 0;
    HashSet<Integer> set = new HashSet<>();
    for (int num : nums) {
      if (num == 0) continue;
      min = Math.min(num,min);
      max = Math.max(num,max);
      if (set.contains(num)) return false;
      set.add(num);
    }
    return max - min < 5;
  }

}
